#pragma once

enum MessageType
{
	MSGTYPE_INPUT_INCREASE_BLASTERS,
	MSGTYPE_INPUT_DECREASE_BLASTERS,
	MSGTYPE_INPUT_INCREASE_SHIELDS,
	MSGTYPE_INPUT_DECREASE_SHIELDS,
	MSGTYPE_INPUT_FIRE_BLASTERS,
	MSGTYPE_INPUT_UNDOCK,
	MSGTYPE_INPUT_LEFT_CLICKED_COORDINATE,
	MSGTYPE_INPUT_HYPERDRIVE_TO_COORDINATE,
	MSGTYPE_INPUT_WAIT_ONE_TURN,
	MSGTYPE_INPUT_RESTART,
	
	MSGTYPE_OUTPUT_LRS_INFORMATION,
	MSGTYPE_OUTPUT_ENTER_SECTOR_REMOVE_EXISTING_OBJECTS,
	MSGTYPE_OUTPUT_POSITION_PLAYER_SHIP_AT_COORDINATE,
	MSGTYPE_OUTPUT_CREATE_GAME_OBJECT_AT_COORDINATE,
	MSGTYPE_OUTPUT_DESTROY_GAME_OBJECT_AT_COORDINATE,
	MSGTYPE_OUTPUT_ENEMY_ENABLED_COMBAT_MODE_AT_COORDINATE,
	MSGTYPE_OUTPUT_ENEMY_SHIP_DAMAGED_AT_COORDINATE,
	MSGTYPE_OUTPUT_ENEMY_SHIP_CONSUMED_ENERGY_AT_COORDINATE,
	MSGTYPE_OUTPUT_MOVED_PLAYER_TOOK_DAMAGE_AT_COORDINATE,
	MSGTYPE_OUTPUT_PLAYER_DOCKED_AT_COORDINATE,
	MSGTYPE_OUTPUT_SET_PLAYER_STATUS,
	MSGTYPE_OUTPUT_MOVED_SHIELDS_WERE_DRAINED,
	MSGTYPE_OUTPUT_MOVED_BLASTERS_WERE_DRAINED,
	MSGTYPE_OUTPUT_MOVED_RESERVES_WERE_DRAINED,
	MSGTYPE_OUTPUT_ATTACKED_SHIELDS_WERE_DRAINED,
	MSGTYPE_OUTPUT_ATTACKED_BLASTERS_WERE_DRAINED,
	MSGTYPE_OUTPUT_ATTACKED_RESERVES_WERE_DRAINED,
	MSGTYPE_OUTPUT_MISSILE_HIT_AT_COORDINATE,
	MSGTYPE_OUTPUT_MISSILE_MISS_AT_COORDINATE,

	MSGTYPE_ERROR_CAN_NOT_MOVE_THERE,
	MSGTYPE_ERROR_HYPERDRIVE_DAMAGED,
	MSGTYPE_ERROR_SUBLIGHT_DAMAGED,
	MSGTYPE_ERROR_MISSILE_LAUNCHERS_DAMAGED,
	MSGTYPE_ERROR_SHIELDS_DAMAGED,
	MSGTYPE_ERROR_BLASTERS_DAMAGED,
	MSGTYPE_ERROR_NO_MISSILES_REMAINING,
	MSGTYPE_ERROR_CAN_NOT_DOCK_ENEMIES_NEARBY,
	MSGTYPE_ERROR_NOT_ENOUGH_ENERGY_RESERVES_TO_TRANSFER,
	MSGTYPE_ERROR_NOT_ENOUGH_SHIELDS_TO_TRANSFER,
	MSGTYPE_ERROR_NOT_ENOUGH_BLASTER_ENERGY_TO_TRANSFER,
	MSGTYPE_ERROR_NO_BLASTER_ENERGY_ALLOCATED,
	MSGTYPE_ERROR_CAN_NOT_HYPERDRIVE_TOO_FAR,
	
	MSGTYPE_OUTPUT_GAME_OVER_WIN,
	MSGTYPE_OUTPUT_GAME_OVER_LOSE,

	MSGTYPE_OUTPUT_DONE // sent by the server once it's finished processing the current request

};